1f68a7ad97561b8eb1f57618d6a7f5364e5ec989,opennms-model/src/main/java/org/opennms/netmgt/model/topology/BridgeTopology.java,BridgeTopology,parseBFTEntry,#BridgeTopologyLinkCandidate#,266

Before Change


                		linkcandidate.getBridgeTopologyPort().getNodeid(),linkcandidate.getBridgeTopologyPort().getBridgePort());
        		linkcandidate.removeMacs(topologyLinkCandidate.getMacs());
            	linkcandidate.addTarget(topologyLinkCandidate.getBridgeTopologyPort().getNodeid());
            	linkcandidate.setRole(BridgePortRole.BACKBONE);
            	topologyLinkCandidate.setRole(BridgePortRole.DIRECT);
        		continue;
        	}

After Change



            // regola intersezione nulla non faccio niente
            // regola intersezione nulla non faccio niente
        	if (linkcandidate.getBridgeTopologyPort().getNodeid().intValue() ==
        			topologyLinkCandidate.getBridgeTopologyPort().getNodeid().intValue()) {
        		LOG.info("parseBFTEntry: rule 00: same node: do nothing");
        		continue;
        	} 
        	if (linkcandidate.intersectionNull(topologyLinkCandidate)) {
        		LOG.info("parseBFTEntry: rule 0: intesection null: do nothing");
        		continue;
        	} 

        	if (linkcandidate.getRole() == BridgePortRole.BACKBONE) {
        		LOG.info("parseBFTEntry: rule 1: found old backbone port: setting new port to DIRECT");
        		linkcandidate.removeMacs(topologyLinkCandidate.getMacs());
            	topologyLinkCandidate.setRole(BridgePortRole.DIRECT);
            	continue;
        	}

        	if (topologyLinkCandidate.getRole() == BridgePortRole.BACKBONE) {
        		LOG.info("parseBFTEntry: rule 2: found new backbone port: setting old port to DIRECT");
        		topologyLinkCandidate.removeMacs(linkcandidate.getMacs());
            	linkcandidate.setRole(BridgePortRole.DIRECT);
            	continue;
        	}

           // regola della dipendenza assoluta direzione avanti
        	if (linkcandidate.strictContained(topologyLinkCandidate)) {
                LOG.info("parseBFTEntry: rule 3: old contained in new: adding target {} to node {}, backbone port {}", linkcandidate.getBridgeTopologyPort().getNodeid(),
                		topologyLinkCandidate.getBridgeTopologyPort().getNodeid(),topologyLinkCandidate.getBridgeTopologyPort().getBridgePort());
            	topologyLinkCandidate.setRole(BridgePortRole.BACKBONE);
            	topologyLinkCandidate.removeMacs(linkcandidate.getMacs());
            	topologyLinkCandidate.addTarget(linkcandidate.getBridgeTopologyPort().getNodeid());
            	linkcandidate.setRole(BridgePortRole.DIRECT);
            	continue;
        	} 
        	// regola della dipendenza assoluta direzione dietro
        	if (topologyLinkCandidate.strictContained(linkcandidate)) {
                LOG.info("parseBFTEntry: rule 4: new contained in old: adding target {} to node {},backbone port {}", topologyLinkCandidate.getBridgeTopologyPort().getNodeid(),
                		linkcandidate.getBridgeTopologyPort().getNodeid(),linkcandidate.getBridgeTopologyPort().getBridgePort());
            	linkcandidate.setRole(BridgePortRole.BACKBONE);
        		linkcandidate.removeMacs(topologyLinkCandidate.getMacs());
            	linkcandidate.addTarget(topologyLinkCandidate.getBridgeTopologyPort().getNodeid());
            	topologyLinkCandidate.setRole(BridgePortRole.DIRECT);
        		continue;
        	}
        	
         	if (linkcandidate.getLinkPortCandidate() == null) {
                LOG.info("parseBFTEntry: rule 5: no suitable data: setting candidate each other");
        		linkcandidate.setLinkPortCandidate(topologyLinkCandidate.getBridgeTopologyPort());
        		topologyLinkCandidate.setLinkPortCandidate(linkcandidate.getBridgeTopologyPort());
        		continue;
        	} 

        	if (linkcandidate.getBridgeTopologyPort().getNodeid().intValue() == topologyLinkCandidate.getLinkPortCandidate().getNodeid().intValue()
        			&& linkcandidate.getBridgeTopologyPort().getBridgePort().intValue() != topologyLinkCandidate.getLinkPortCandidate().getBridgePort().intValue()) {
                LOG.info("parseBFTEntry: rule 6: old contained in new: adding target {} to node {}, backbone port {}", linkcandidate.getBridgeTopologyPort().getNodeid(),
                		topologyLinkCandidate.getBridgeTopologyPort().getNodeid(),topologyLinkCandidate.getBridgeTopologyPort().getBridgePort());
           		topologyLinkCandidate.setRole(BridgePortRole.BACKBONE);
        		topologyLinkCandidate.removeMacs(linkcandidate.getMacs());
        		topologyLinkCandidate.addTarget(linkcandidate.getBridgeTopologyPort().getNodeid());
        		
        		linkcandidate.setRole(BridgePortRole.DIRECT);
        		linkcandidate.setLinkPortCandidate(null);
        		continue;
        	}

        	if (topologyLinkCandidate.getBridgeTopologyPort().getNodeid().intValue() == linkcandidate.getLinkPortCandidate().getNodeid().intValue()  
        			&& topologyLinkCandidate.getBridgeTopologyPort().getBridgePort().intValue() != linkcandidate.getLinkPortCandidate().getBridgePort().intValue()) {
                LOG.info("parseBFTEntry: rule 7: new contained in old: adding target {} to node {},backbone port {}", topologyLinkCandidate.getBridgeTopologyPort().getNodeid(),
                		linkcandidate.getBridgeTopologyPort().getNodeid(),linkcandidate.getBridgeTopologyPort().getBridgePort());
        		linkcandidate.setRole(BridgePortRole.BACKBONE);
        		linkcandidate.removeMacs(topologyLinkCandidate.getMacs());
            	linkcandidate.addTarget(topologyLinkCandidate.getBridgeTopologyPort().getNodeid());